Smart-channel: learning-capable television channel changing apparatus, system and method

ABSTRACT

System and method for learning the optimal channel change instruction recognition speed for an entertainment system. A memory stores information relating to: time increments between channel change signals; pulse width of each individual digit of a channel instruction; and the duration of time between each digit pulse signal. Based on the information stored in memory, a microprocessor constructs and sends channel change commands at a particular speed, progressively increasing the speed. When the speed at which channel change commands are sent exceeds the capability of the television receiver to recognize the channel change command, the microprocessor reduces the speed, as a function of the information stored in memory, until the television receiver can recognize the channel change command. The microprocessor stores in memory the fastest speed at which the television receiver can recognize the channel change command. Thereafter, the microprocessor uses the optimal speed to deliver channel change commands.

This application is a continuation of U.S. Pat. No. 6,411,343, which inturn claim the benefit of U.S. Provisional Patent Application Nos.60/086,308 (“SMART-CHANNEL: LEARNING-CAPABLE TELEVISION CHANNEL CHANGINGAPPARATUS AND METHOD”), and 60/095,737 (“SMART-CHANNEL: LEARNING-CAPABLETELEVISION CHANNEL CHANGING APPARATUS AND METHOD”) the disclosures ofwhich are incorporated herein by reference, as if fully stated herein,for all purposes.

FIELD OF THE INVENTION

The present invention relates generally to television systems and VCRsystems, and more particularly, to any learning-capable televisionchannel changing device which controls a remote device via infrared orradio frequency, such as a television, VCR, cable box or satellitereceiver.

BACKGROUND OF THE INVENTION

Television viewers frequently search available real-time televisionprograms by using a remote control device to change channels. The viewercould use the numeric keys on the viewer's remote control device toenter the precise number of a particular channel. After the viewerenters the digits for a particular channel, the viewer must wait untilthe channel change device recognizes the viewer's entry of the digits asan instruction to change channels to the particular channel. Often, thetime that the viewer must wait after the time that the viewer hasentered the last digit of the channel until the time that the televisiondisplays the content of the identified channel is much longer than theviewer expects.

Alternatively, the viewer can sequentially, incrementally changechannels, typically by using the up and down channel keys on theviewer's remote control device. Television viewers who incrementallychange channels typically disapprove of, and become impatient with, along lag time between the viewer's pressing an up or down channel key onthe viewer's remote control device and the actual changing of thechannel.

Incremental channel change speed may be set by a particular manufacturerto occur more slowly than desired by a particular viewer. Furthermore,incremental channel change speed can depend upon the level ofintegration of the viewer's entertainment system components. Mixingcomponents of different manufacturers, or even different technologyadvancements by a single manufacturer, in a single entertainment systemcan result in degradation of incremental channel change speed.

There is a need, therefore, for a method and apparatus that is capableof learning, for the components of a particular entertainment system,the optimal speed and timing with which the viewer's instruction to thechannel change device to change channels will be recognized by thecomponents of a particular entertainment system. Similarly, there is afurther need for a method and apparatus that is capable of constructingand delivering a change channel instruction to the components of aparticular entertainment system according to the optimal speed andtiming with which the viewer's instruction to the channel change deviceto change channels will be recognized by the components of thatparticular entertainment system.

SUMMARY OF THE INVENTION

The present invention is directed to an apparatus and method thatsatisfies these needs. There is, therefore provided, according to apreferred embodiment, methods, systems and apparatus for learning theoptimal channel change instruction recognition speed for the componentsof a particular entertainment system. A memory provides storage forinformation relating to: time increments between channel change signals;pulse width of each individual digit of a channel instruction; and theduration of time between each digit pulse signal. As a function of theinformation stored in memory, a microprocessor generates and sendschannel change commands at a particular speed, progressively increasingthe speed. A means is provided for monitoring the television receiverand for detecting whether the channel change command resulted in thechange of the programming channel received by the television receiver.When the speed at which channel change commands are generated and sentexceeds the capability of the television receiver to recognize thechannel change command, the microprocessor reduces the speed, as afunction of the information stored in memory, until the televisionreceiver can recognize the channel change command. The microprocessorstores in memory the fastest speed at which the television receiver canrecognize the channel change command. Thereafter, the microprocessoruses the optimal speed to construct and deliver channel change commands.

DESCRIPTION OF THE DRAWINGS

These and other features, aspects, and advantages of the presentinvention will become better understood with regard to the followingdescription, appended claims, and accompanying drawings where:

FIG. 1 is a flow diagram of the learning-capable channel changingapparatus used in accordance with one embodiment of the presentinvention;

FIG. 2 is an electrical block diagram of the learning-capable channelchanging apparatus used in accordance with one embodiment of the presentinvention;

FIGS. 3 a, 3 b, 3 c, 3 d, 3 e, 3 f, and 3 g are flow diagrams of thelearning-capable channel changing apparatus used in accordance with oneembodiment of the present invention.

FIG. 4 is a flow diagram of the learning-capable channel changingapparatus used in accordance with an alternative embodiment of thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION

A channel change command consists of a series of pulses, one for eachindividual digit of a channel. In order to recognize a channel changecommand, the entertainment system channel changing device must be ableto recognize each individual pulse, and must be able to recognize theseries of pulses as a discrete command. When multiple channel changecommands are sent back-to-back, the channel change device must be ableto determine the end of the first command and the beginning of thesecond command.

Accordingly, in order to optimize the speed at which channels can bechanged, the apparatus and method of the present invention optimizes thefollowing three main components of channel change instruction speed: 1)the period of time between one channel change command being sent to thechannel change device and the time at which the next channel changecommand is sent to the channel change device (“inter-channel instructiontime”); 2) the pulse width of each individual digit of a channel changeinstruction (“channel digit pulse width”); and 3) the period of timebetween the end of the pulse signal for one digit of a channel changecommand, and the beginning of the pulse signal for the next digit of achannel change command (“inter-digit time”).

With regard to inter-channel instruction time, the shorter the period oftime between the time at which two subsequent channel change commandsare sent to the channel change device, the faster the speed at which thechannel change commands are sent. With regard to channel digit pulsewidth, the shorter the duration of each pulse, the shorter the durationof the entire channel change command. With regard to inter-digit time,the shorter the period of time between digit pulses, the shorter theduration of the entire channel change command.

A. Learning and Optimizing Discrete Channel Change InstructionRecognition Speed

One embodiment of the present invention provides the television viewerthe opportunity to instruct the viewer's entertainment system tooptimize the speed at which a discrete channel change instruction can berecognized. To do this, the present invention optimizes, for theparticular entertainment system components: 1) the channel digit pulsewidth; and 2) the inter-digit time. The viewer performs a setup processone time to initialize the system's optimization of the channel digitpulse width and the inter-digit time. The viewer uses a viewer inputdevice 20 as seen in FIG. 2, preferably the viewer's handheld infrared(IR) remote control device, to select the channel changing speedoptimization process from a menu of initialization procedures. Theviewer input device 20 is coupled to the microprocessor 21 to provideviewer control of the television channels.

The Microprocessor 21 can be a television microprocessor used to performother functions and that is further programmed to carry out theinvention or the Microprocessor 21 can be a dedicated microprocessorprogrammed to carry out the invention that works with the televisionmicroprocessor. As shown in FIG. 2, the Microprocessor 21 is coupledwith one or more channel changing devices in the viewer's entertainmentsystem. It should be understood that the use herein of the phrases“coupled with” and “coupled to” include among other things physicalconnections, electrical connections, and means of communications betweentwo devices, such as, for instance using wireless communications such asinfra-red transmitters and receivers to communicate data, signals and/orinstructions. The Microprocessor 21 may be coupled with a cable box 24,a satellite box 25, and/or a television receiver 26. In entertainmentsystems where the Microprocessor 21 is coupled to more than one channelchanging device, the Microprocessor 21 learns the optimal channelchanging speed for each such device.

In the learning initialization procedure, the viewer is asked to makeselections from a menu of options to identify the components in theviewer's entertainment system. The viewer is also asked to select from amenu of options an initial channel digit pulse width and an initialinter-digit time. The viewer is also asked to select from a menu ofoptions the decrements with which the channel digit pulse width and theinter-digit time would be decreased. The viewer uses the viewer's inputdevice to make the appropriate selections. Information concerning theviewer's selections is saved in memory 3 as shown in FIG. 3 a.Alternatively, the initial channel digit pulse width, the initialinter-digit time, and the decrements with which the channel digit pulsewidth and the inter-digit time would be decreased are set by themanufacturer of the television or remote.

Flow charts of one embodiment of the operation of the initial learningsetup procedure are shown in FIGS. 3 a, 3 b, 3 c, 3 d, 3 e, 3 f, and 3g. As depicted in FIG. 3 a, the channel changing optimization learningsystem begins 30, after device and speed information has beeninitialized in memory 3. The system reads 31 previously initializedchannel change information such as an initial speed (INITIAL-SPEED), aninitial channel (INITIAL-CHANNEL), an initial pulse width(INITIAL-WIDTH), an initial time (INITIAL-TIME), a pulse width increment(PULSE-WIDTH-CHG), and a digit time increment (DIGIT-TIME-CHG), frommemory 3. In one embodiment, the channel change information has beenpreviously initialized by the viewer during a one-time set-up procedureas described above.

As shown in the Initialization Procedure 32, the system initializesvalues for the time, optimal speed, the channel, the optimal pulse widthand the optimal digit time. As shown in Block 32, the system records (inCLOCK-TIME) the actual time (TIME). Also as shown in Block 32, thesystem initializes the optimum speed (OPTI-SPEED) at which to sendchannel change commands with a previously set initial speed(INITIAL-SPEED). As is also shown in Block 32, the system initializesthe optimum channel digit pulse width (OPTI-WIDTH) and the optimuminter-digit time (OPTI-TIME) with previously set initialization values,(INITIAL-WIDTH and INITIAL-TIME, respectively). As is also shown inBlock 32, the system initializes the channel digit pulse width decrement(PULSE-WIDTH-CHG) and the inter-digit time decrement (DIGIT-TIME-CHG)with previously set initialization values read from memory.

Based upon the initialized information, as shown in Procedure Block 33,the pulse width and the inter-digit time are decreased and a channelchange command for the particular channel-changing device type in theviewer's entertainment system is sent (FIGS. 3 b, 3 c, 3 d and 3 e).This process is continued until the channel changing device can nolonger recognize the channel change command. One embodiment of theprocess for optimizing pulse width is depicted in FIG. 3 b and isdescribed further below. One embodiment of the process for optimizingdigit time is depicted in FIG. 3 c and is described further below.

As depicted in FIG. 3 b, to optimize the pulse width the pulse width(OPTI-WIDTH) is first decreased by the pulse width decrement(PULSE-WIDTH-CHG) 37. The Microprocessor 21 is programmed to wait untila particular time at which a change channel instruction should be sentand then tries to change a channel 38. The Microprocessor 21 isprogrammed to return to the process that performed the pulse widthoptimization routine 39. One embodiment of the process to wait until aparticular time at which a change channel instruction should be sent isdepicted in FIG. 3 d and is described below. One embodiment of theprocess to try to change a channel is depicted in FIG. 3 e and isdescribed below.

As depicted in FIG. 3 c, to optimize the digit time the digit time(OPTI-TIME) is first decreased by the digit time decrement(DIGIT-TIME-CHG) 40. The Microprocessor 21 is programmed to wait until aparticular time at which a change channel instruction should be sent andthen tries to change a channel 41. The Microprocessor 21 is programmedto return to the process that performed the digit time optimizationroutine 42. One embodiment of the process to wait until a particulartime at which a change channel instruction should be sent is depicted inFIG. 3 d and is described below. One embodiment of the process to try tochange a channel is depicted in FIG. 3 e and is described below.

As depicted in FIG. 3 d, the Microprocessor 21 sets the time (NEXT-TIME)at which a channel change command should be sent to the current clocktime (CLOCK-TIME) plus the optimum speed increment (OPTI-SPEED). TheMicroprocessor 21 is programmed to repeatedly check whether the currentclock time (TIME) exceeds or is equal to the time calculated as the nexttime (NEXT-TIME) a channel change instruction should be sent 51. TheMicroprocessor 21 is programmed to continue repeatedly performing theTIME/NEXT-TIME comparison until the current clock time (TIME) exceeds oris equal to the time calculated as the next time (NEXT-TIME) (51, 52).When the current clock time (TIME) exceeds or is equal to the timecalculated as the next time (NEXT-TIME), the Microprocessor 21 returns53 to the procedure that performed the procedure to wait until aparticular time at which a change channel instruction should be sent.

As depicted in FIG. 3 e, the system's microprocessor 21 increases thechannel 60, constructs a channel change command 61, and sends thecommand 62 to the channel changing device, for example, a cable box 24,a satellite box 25, or a television receiver 26.

In one embodiment, each channel change command is preceded by aninitializing channel change command. In an initializing channelembodiment, the Microprocessor 21 is programmed to send a channel changecommand that resets the television receiver to a particular channel, forinstance, the “INITIAL-CHANNEL.” For instance, in an initializingchannel embodiment, the Microprocessor 21 is programmed to precedefunction block 37 in FIG. 3 b, function block 40 in FIG. 3 c, functionblock 70 in FIG. 3 f, and function block 80 in FIG. 3 g with the steps,as depicted in FIG. 4, which would include: setting CHANNEL equal toINITIAL-CHANNEL (100); constructing a CHANNEL-CHANGE-INSTRUCTION forINITIAL-CHANNEL (101); setting NEXT-TIME equal to CLOCK-TIME plusINITIAL-SPEED (102); waiting until TIME greater than or equal toNEXT-TIME (103, 104, 106); when TIME is greater than or equal toNEXT-TIME (105), sending the CHANNEL-CHANGE-INSTRUCTION to thetelevision receiver (107).

As shown in FIG. 2, the television receiver 26 is monitored by theChannel Change Detector 27. As shown in FIG. 3 e, the Channel ChangeDetector is interrogated (63, 64) to determine whether or not the lastsent channel change command resulted in the channel received by thetelevision receiver being changed.

The change of channels can be detected in various ways. In oneembodiment, the channel identification of each channel deliveringtelevision programming is embedded in the Vertical Blanking Interval(“VBI”) in XDS format. The output of the television drive circuitry isconnected to the input of a VBI decoder. The VBI decoder strips the XDSsignal from the baseband television signal. The output of the VBIdecoder includes a data signal representative of the channelidentification of the channel to which the television is tuned.

The Channel Change Detector 27 detects whether the data signalrepresenting the current channel to which the television is tuned to thechannel is the same or is different from the data signal to which thetelevision was tuned prior to the most recent channel change instructionbeing sent. The Channel Change Detector 27 updates what is referred toherein as the CHANNEL-CHANGE-DETECTOR. If the data signal representingthe current channel to which the television is tuned is different thanthe data signal representing the channel to which the television wastuned prior to the most recent channel change instruction being sent,the Channel Change Detector 27 updates the CHANNEL-CHANGE-DETECTOR (63)to indicate that the channel has been changed. If, on the other hand,the data signal representing the current channel to which the televisionis tuned is the same as the data signal representing the channel towhich the television was tuned prior to the most recent channel changeinstruction being sent, the Channel Change Detector 27 updates theCHANNEL-CHANGE-DETECTOR (63) to indicate that the channel has not beenchanged. The Microprocessor 21 checks the CHANNEL-CHANGE-DETECTOR to seeif the channel has been changed (64). If the current channel isdifferent from the previous channel (the “Y” path from decision Block64, FIG. 3 e), then the channel change command caused the channel tochange (channel change successful). Otherwise, the current channel isthe same channel to which the television was tuned prior to the lastchannel change command, (the “N” path from decision Block 64) and nochange of channels has occurred (channel change not successful).

In another embodiment, a means of isolating the vertical sync signal isprovided. For more detail on sync separators, see, e.g., TelevisionEngineering Handbook, Revised Edition, McGraw-Hill, Inc., K. BlairBenson, Editor and coauthor, revised by Jerry C. Whitaker, 13.5-13.17(1992). A change in channels is detected by interrogating the verticalsync signal. If the vertical sync signal has been interrupted, then achange of channels has occurred (the “Y” path from decision Block 64).If there has not been an interruption in the vertical sync signal, thenthere has been no change of channels (the “N” path from decision Block64).

If the channel change instruction was successful (the “Y” path fromdecision Block 64), then the Microprocessor 21 is programmed to indicatethat the channel has been changed and returns to the procedure thatperformed the process of trying to change channels 66. Otherwise (the“N” path from decision Block 64), the Microprocessor 21 is programmed toindicate that the channel has not been successfully changed beforereturning to the procedure that performed the process of trying tochange channels 65.

As depicted in FIG. 3 a, the pulse/time decrement loop, Block 33, isrepeated until the channel change device can not recognize the lastchannel change command (the “N” path from decision Block 64). When thelast channel change instruction was not successful (the “N” path fromdecision Block 64), then one or more of the pulse width or theinter-digit timing were insufficiently small to be recognized by thechannel change device.

As depicted in FIG. 3 a, the Microprocessor 21 is programmed to performthe process of increasing the pulse width (as depicted in FIG. 3 f) andthe digit time (as depicted in FIG. 3 g) until the channel change can berecognized.

As depicted in FIG. 3 f, the system increases the pulse width by theamount of PULSE-WIDTH-CHG 70, waits until the appropriate time to send anext channel change instruction (as depicted in FIG. 3 d), tries tochange channels (as depicted in FIG. 3 e) 71, before returning to theprocess that performed the pulse width increase routing 72.

If the channel change instruction is still not successful, then asdepicted in FIG. 3 g, the system accordingly increases the inter-digittime by the amount of DIGIT-TIME-CHG 80 waits until the appropriate timeto send a next channel change instruction (as depicted in FIG. 3 d),tries to change channels (as depicted in FIG. 3 e) 81, before returningto the process that performed the pulse width increase routing 82.

As depicted in FIG. 3 a, the system stores 35 the final optimum channeldigit pulse width (OPTI-WIDTH) and the final optimum inter-digit time(OPTI-TIME) at which a channel change command was recognized by thesystem in Memory 3 for every future use of the channel changing device.At that point, the initial learning setup procedure is complete 36.

It should be understood that the data names used herein, identified withall capital letters and which are frequently hyphenated words, are usedfor descriptive purposes and are not in any way a limitation of theinvention.

In one embodiment, there are multiple channel change devices coupled tothe television receiver, and the initial learning setup procedure isrepeated to learn the optimum channel change component speeds for eachdevice. In one such multiple channel change device embodiment, there isa single microprocessor in the television receiver programmed to carryout the invention; in another such multiple channel change deviceembodiment, there is a microprocessor programmed to carry out theinvention in each device for which channels are to be changed.

B. Learning and Optimizing Incremental Channel Change InstructionRecognition Speed

One embodiment of the present invention provides the television viewerthe opportunity to instruct the viewer's entertainment system to learnthe optimal speed for incremental channel changing for that viewer'sentertainment system. The viewer performs a setup process one time toinitialize the system's optimization of incremental channel changingspeed. The viewer uses a viewer input device 20 as seen in FIG. 2,preferably the viewer's hand-held infrared (IR) remote control device,to select the incremental channel changing speed optimization processfrom a menu of initialization procedures. The viewer input device 20 iscoupled to the Microprocessor 21 to provide viewer control of thetelevision channels. In the learning initialization procedure, theviewer is asked to make selections from a menu of options to identifythe components in the viewer's entertainment system. The viewer is alsoasked to select from a menu of options, the increment with which thespeed of channel changing would be increased during the optimizationlearning process. The viewer uses the viewer's input device to make theappropriate selections. Information concerning the viewer's selectionsis saved in memory 3 as shown in FIG. 1.

In FIG. 1, a flow chart of one embodiment of the operation of theinitial learning setup procedure is shown. The channel changingoptimization learning system begins, at Start Terminal 1, after deviceand speed information has been initialized. At the Load Procedure 2, thesystem loads previously initialized channel change information frommemory 3. In one embodiment, the channel change information has beenpreviously initialized by the viewer during a one-time set-up procedureas described above.

Based upon the previously initialized information, the system thengenerates, as shown in Generation Procedure Block 4, a channel changecommand for the particular channel-changing device type in the viewer'sentertainment system. As shown in FIG. 2, the Microprocessor 21 iscoupled with one or more channel changing devices in the viewer'sentertainment system. The Microprocessor 21 may be coupled with a cablebox 24, a satellite box 25, and/or a television receiver 26. Inentertainment systems where the Microprocessor 21 is coupled to morethan one channel changing device, the Microprocessor 21 learns theoptimal channel changing speed for each such device.

As shown in FIG. 1, after the system's Microprocessor 21 generates achannel change command 4, the system sends the command 5 to the channelchanging device, for example, a cable box 24, a satellite box 25, or atelevision receiver 26. As shown in Block 5, the system records (inCLOCK-TIME) the actual time (TIME). Also as shown in Block 5, the systeminitializes the optimum speed (OPTI-SPEED) at which to send channelchange commands with a previously set initial speed (INITIAL-SPEED). Thesystem's Microprocessor 21 then sets, in Block 6, the time, NEXT-TIME,at which the system should send the next channel change command. As seenin Block 6, NEXT-TIME is set to a time that equals the clock-time atwhich the previous channel change command was sent plus the previouslyset speed increment (OPTI-SPEED). As seen in the decision Block 7, thesystem then compares the real-time clock-time with the time scheduledfor the next channel change command to be sent. As seen in the decisionloop comprised of decision Block 7 and the Wait Block 8, the systemwaits until the real-time clock-time equals or exceeds the timescheduled for the next channel change command to be sent. At theappointed time, the system sends the next channel change command, asshown in Block 9.

As shown in FIG. 2, the television receiver 26 is monitored by theChannel Change Detector 27. As shown in FIG. 1, the Channel ChangeDetector is interrogated to determine whether or not the last sentchannel change command resulted in the channel received by thetelevision receiver being changed. As described above, the change ofchannels can be detected in various ways.

If the channel change instruction was successful (the “Y” path fromdecision Block 11), then the Microprocessor 21 increases the speed 14 atwhich the next channel change command is sent. The speed increment loop,blocks 6 through 14 inclusive, is repeated until the channel changecommands are sent at a speed that exceeds the channel change device'scapability to recognize the command (the “N” path from decision Block11).

If the channel change instruction was not successful (the “N” path fromdecision Block 11), then the speed with which the system sent channelchange commands exceeded the television receiver's capability torecognize the last command. The system accordingly reduces 12 the speed(OPTI-SPEED) that will be recorded as the final optimum speed to thelast speed at which a channel change command was recognized by thesystem and saves the final optimum speed in Memory 3.

In one embodiment, the system sends a final sequence of channel changecommands at the final optimum speed to test the conclusion before savingthe optimum speed in memory. If the final test is successful, the systemsaves the final optimum speed in Memory 3. If the final test is notsuccessful, the system again reduces the speed and performs anothertest. This reduction of speed process is continued until a sequentialseries of two channel change commands is recognized.

The final optimum speed is saved 13 in Memory 3 for every future use ofthe channel changing device. At that point, the initial learning setupprocedure is complete (Stop Block 15).

In one embodiment, where there are multiple channel change devicescoupled to the television receiver, the initial learning setup procedureis repeated to learn the optimum channel change speed for each device.

In one embodiment, after reducing the speed increment (14), theMicroprocessor 21 is programmed to send a channel change command thatresets the television receiver to a particular channel, for instance,the “INITIAL-CHANNEL.” In one initializing channel embodiment, theMicroprocessor 21 is programmed to follow the function block 14 with thesteps, as depicted in FIG. 4, which would include: setting CHANNEL equalto INITIAL-CHANNEL (100); constructing a CHANNEL-CHANGE-INSTRUCTION forINITIAL-CHANNEL (101); setting NEXT-TIME equal to CLOCK-TIME plusINITIAL-SPEED (102); waiting until TIME greater than or equal toNEXT-TIME (103, 104, 106); when TIME is greater than or equal toNEXT-TIME (105), sending the CHANNEL-CHANGE-INSTRUCTION to thetelevision receiver (107). Once the television receiver has been resetto the specified initialized channel, the Microprocessor 21 isprogrammed to continue with the next iteration of the speed optimizationloop (function blocks 6 through 14).

C. Learning and Optimizing Channel Change Instruction Recognition SpeedFactors for Exception Processing

One embodiment of the invention incorporates special tests to learncertain exception processing characteristics of the channel changingdevice. One such special test is performed to determine the device'sability to detect a “bounce.” A bounce condition exists when a viewerholds a single key for an extended period of time, thereby generating anecho, or “bounce” of the numbered digit. For example, when a viewerholds the “2” key on the remote control device for an extended period oftime, the remote control device may generate and send a second “2” digitto the channel change device. Some channel change devices are not ableto distinguish the bounce from the situation where the viewer actuallypresses the same key twice. The invention first tests to determinewhether the channel change device has difficulty distinguishing, orcannot distinguish, a “bounce.”In the case where the channel changedevice has difficulty distinguishing, or cannot distinguish, a “bounce,”then the invention provides for a longer inter-digit timing periodbetween two occurrences of the same digit.

Exception processing is also used to test a particular channel changedevice's capability to distinguish a request for a two digit channelchange instruction as opposed to a three digit channel changeinstruction. For instance, a particular channel change device may havedifficulty recognizing a channel change instruction to change to channel“12.” The device may be configured to wait an extended period of time toensure that a third digit does not follow, e.g., 125. In the case wherea particular channel change device has difficulty recognizing a requestfor a two digit channel change instruction as opposed to a three digitchannel change instruction, the invention provides for a longerinter-channel timing factor.

D. Channel Change Instructions Using Optimal Settings

After the system has learned the optimal settings for pulse width,inter-digit timing, and/or inter-channel change instruction time, theMicroprocessor 21 uses the optimal settings to construct and deliversubsequent channel change commands.

E. Order of Steps Illustrative and Not a Limitation of Invention

It should be understood that the order of functions described herein areillustrative and/or exemplary and are not a limitation of the invention.Various and numerous other orders of the functions described herein maybe devised by one skilled in the art without departing from the spiritand scope of this invention. For instance, in one embodiment, thefunctions described above for FIG. 3 a in function blocks 33 and 34 canbe performed separately. That is, a first pass is made to optimize thevalue for OPTI-WIDTH; a second pass is made to optimize the value forOPTI-TIME. As another example, the embodiments described herein havebeen described according to a process organization that performssubroutines which themselves perform subroutines. This organization isexemplary and is not in any way a limitation of the invention.

Illustrative Embodiments

The embodiments of the invention described herein are only considered tobe preferred and/or illustrative of the inventive concept; the scope ofthe invention is not to be restricted to such embodiments. Various andnumerous other arrangements may be devised by one skilled in the artwithout departing from the spirit and scope of this invention. Forexample, in one embodiment, the invention optimizes all three of thechannel change speed factors—pulse width, inter-digit timing, andinter-channel change instruction time.

1. A system for determining an improved channel change commandrecognition speed for an entertainment system comprising: means fordetecting a first speed at which a television tuner successfullyexecutes channel change commands faster than a second speed; means forstoring said first speed; and means for using said stored first speed toconstruct and send subsequent channel change commands to said televisiontuner.
 2. The system for determining an improved channel change commandrecognition speed of claim 1 further comprising: means for a user toinstruct said system to determine said improved speed by selecting thechannel change speed improvement process from a menu of initializationprocesses.
 3. The system for determining an improved channel changecommand recognition speed of claim 1 further comprising: means forrepeating the steps of detecting, storing and using said improved speedfor each channel change device in said entertainment system.
 4. Thesystem for determining an improved channel change command recognitionspeed of claim 2 further comprising: means for said user to identify thecomponents in said system using a menu of options.
 5. The system fordetermining an improved channel change command recognition speed ofclaim 2 wherein said user selects values for: initial channel-digitpulse width; initial inter-digit time; and the time increment used todecrement said channel-digit pulse width and said inter-digit time. 6.The system for determining an improved channel change commandrecognition speed of claim 5 wherein said values selected by said userare stored in memory.
 7. The system for determining an improved channelchange command recognition speed of claim 2 wherein initialchannel-digit pulse width, initial inter-digit time and the timeincrement used to decrement said channel-digit pulse width andinter-digit time are preset by the manufacturer of said television tuneror channel change device.
 8. The sytem for determining an improvedchannel change command recognition speed of claim 1 wherein improvedspeed comprises smaller time increments between discrete channel changecommands.
 9. The system for determining an improved channel commandrecognition speed of claim 1 wherein improved speed comprises one ormore of: shorter pulse width of each individual digit of a channelchange command; and smaller time increments between digit pulse signalsof a channel change command.
 10. The system for determining an improvedchannel change command recognition speed of claim 1 wherein means fordetecting said first speed further comprises: means for constructingchannel change commands; means for sending successive channel changecommands to said television tuner at progressively increasing speeds;and means for monitoring said televison tuner to detect faster speeds atwhich said television tuner successfully executes channel changecommands.
 11. The system for determining an improved channel changecommand recognition speed of claim 10 wherein said means forconstructing channel change commands comprises a microprocessor.
 12. Thesystem for determining an improved channel change command recoginitionspeed of claim 10 wherein sending successive channel change commands atprogressively increasing speeds further comprises: means forincrementing the speed at which the previous command was sent by aspecific increment of time; and means for sending the subsequent commandto said television tuner at said incremented speed.
 13. The system fordetermining an improved channel change command recognition speed ofclaim 12 wherein said means for incrementing said speed furthercomprises means for alternately decrementing channel-digit pulse widthand inter-digit time.
 14. The system for determining an improved channelchange command recognition speed of claim 10 further comprising: meansfor setting said television tuner to an initial channel before sendingeach channel change command.
 15. The system for determining an improvedchannel change command recoginition speed of claim 10 wherein sendingsaid successive commands further comprises: time means for providing anoutput as a function of time coupled to said means for sendingsuccessive commands; and said means for sending successive commandsdetermining when to send said commands using said time means output. 16.The system for determining an improved channel command recognition speedof claim 10 further comprising: means for detecting the first channelchange command said television tuner does not correctly execute; meansfor identifying the speed used to send said first command; and means forincrementally reducing speed by a specific increment of time until saidtelevision tuner correctly executes said channel change commands. 17.The system for determining an improved channel change commandrecognition speed of claim 16 wherein incrementally reducing said speedfurther comprises alternately increasing channel-digit pulse width andinter-digit time by said specific increment of time.
 18. The system fordetermining an improved channel change command recognition speed ofclaim 10 further comprising: means for detecting the first channelchange command said television tuner does not correctly execute; meansfor identifying the speed used to send said first command; and means forreducing said speed of said first command according to the timeincrement used to increase the speed of the previous command.
 19. Thesystem for determining an improved channel change command recognitionspeed of claim 10 further comprising: means for sending a sequence oftwo or more channel change commands at said faster speed; and means fordetecting whether said channel change commands were successfullyexecuted.
 20. The system for determining an improved channel changecommand recognition speed of claim 19 further comprising: means forstoring said faster speed if said channel change commands weresuccessfully executed; and means for returning to the process ofimproving the speed at which said television tuner successfully executeschannel change commands if said channel change commands were notsuccessfully executed.
 21. A method of determining an improved channelchange command recognition speed for an entertainment system comprising:detecting a first speed at which a television tuner successfullyexecutes channel change commands faster than a second speed; storingsaid first speed; and using said stored first speed to construct andsend subsequent channel change commands to said television tuner. 22.The method of determining an improved channel change command recognitionspeed of claim 21 further comprising: a user instructing said system todetermine said improved speed by selecting the channel change speedimprovement process from a menu of initialization processes.
 23. Themethod of determining an improved channel change command recognitionspeed of claim 21 further comprising: repeating the steps of detecting,storing and using said improved speed for each channel change device insaid entertainment system.
 24. The method of determining an improvedchannel change command recognition speed of claim 22 further comprising:user identifying the components in said system using a menu of options.25. The method of determining an improved channel change commandrecognition speed of claim 22 further comprising said user selectingvalues for: initial channel-digit pulse width; initial inter-digit time;and the time increment used to decrement said channel-digit pulse widthand said inter-digit time.
 26. The method of determining an improvedchannel change command recognition speed of claim 25 further comprising:storing the values selected by said user in memory.
 27. The method ofdetermining an improved channel change command recognition speed ofclaim 22 wherein the manufacturer of said television tuner or channelchange device presets initial channel-digit pulse width, initialinter-digit time and the time increment used to decrement saidchannel-digit pulse width and inter-digit time.
 28. The method ofdetermining an improved channel change command recognition speed ofclaim 21 wherein detecting said first speed further comprises:constructing channel change commands; sending successive channel changecommands to said television tuner at progressively increasing speeds;and monitoring said television tuner to detect faster speeds at whichsaid television tuner successfully executes channel change commands. 29.The method of determining an improved channel change command recognitionspeed of claim 28, wherein sending successive channel change commands atprogressively increasing speeds further comprises: incrementing thespeed at which the previous command was sent by a specific increment oftime; and sending the subsequent command to said television tuner atsaid incremented speed.
 30. The method of determining an improvedchannel change commnd recognition speed of claim 29 wherein incrementingsaid speed used to transmit commands further comprises alternatelydecrementing channel-digit pulse width and inter-digit time.
 31. Themethod of determining an improved channel change command recognitionspeed of claim 28 further comprising: setting said television tuner toan initial channel before sending each channel change command.
 32. Themethod of determining an improved channel change command recognitionspeed of claim 28 wherein sending said successive commands furthercomprises: determining when to send said successive commands as afunction of time.
 33. The method of determining an improved channelchange command recognition speed of claim 28 further comprising:detecting the first channel change command said television tuner doesnot correctly execute; identifying the speed used to send said firstcommand; and incrementally reducing said speed by a specific incrementof time until said television tuner correctly executes said channelchange commands.
 34. The method of determining an improved channelchange command recognition speed of claim 33 wherein incrementallyreducing said speed further comprises alternately increasingchannel-digit pulse width and inter-digit time by said specificincrement of time.
 35. The method of determining an improved channelchange command recognition speed of claim 28 further comprising:detecting the first channel change command said televion tuner does notcorrectly execute; identifying the speed used to send said firstcommand; and reducing said speed of said first command according to thetime increment used to increase the speed of the previous command. 36.The method of determining an improved channel change command recognitionspeed of claim 21 further comprising: sending a sequence of two or morechannel change commands at said faster speed; and detecting whether saidchannel change commands were successfully executed.
 37. The method ofdetermining an improved channel change command recognition speed ofclaim 36 further comprising: storing said faster speed if said channelchange commands were successfully executed; and returning to the processof improving the speed at which said television tuner successfullyexecutes channel change commands if said channel change commands werenot successfuly executed.
 38. A system for determining an improvedchannel change command recognition speed for an entertainment systemcomprising: television tuner that receives channel change commands;channel change detector; microprocessor coupled to the transmitter thatdetects a first speed at which said television tuner successfullyexecutes channel change commands faster than a second speed; and memorythat stores said first speed, wherein said microprocessor is configuredto construct and send subsequent channel change commands with thetransmitter to said television tuner at said stored first speed.
 39. Thesystem for determining an improved channel change command recognitionspeed of claim 38 wherein: said detecting, storing and sending usingsaid first speed is repeated for each channel change device in saidsystem.
 40. The system for determining an improved channel changecommand recognition speed of claim 38 further comprising: a display; andan input that receives user selections, wherein said microprocessor isconfigured to cause a menu of system initialization processes, includingthe channel change speed improvement process, to be displayed on saiddisplay.
 41. The system for determining an improved channel changecommand recognition speed of claim 40 wherein said microprocessor isconfigured to cause a menu of system component identification options tobe displayed on said display.
 42. The system for determining an improvedchannel change command recognition speed of claim 40 wherein: saidmicroprocessor is configured to cause a menu of initialization valueoptions to be displayed on said display; and said input receives userselected values for initial channel-digit pulse width, initialinter-digit time and the time increment used to decrement saidchannel-digit pulse width and said inter-digit time.
 43. The system fordetermining an improved channel change command recognition speed ofclaim 42 wherein said memory stores said user selected values.
 44. Thesystem for determining an improved channel change command recognitionspeed of claim 40 wherein said memory stores preset values, inputted bythe television tuner or channel change device manufacturer, for initialchannel-digit pulse width, initial inter-digit time and the timeincrement used to decrement said channel-digit pulse width andinter-digit time.
 45. The system for determining an improved channelchange command recognition speed of claim 38 wherein: saidmicroprocessor constructs and sends successive channel change commandsto said television tuner with said transmitter; and said microprocessormonitors said channel change detector to detect faster speeds at whichsaid television tuner successfully executes channel change commands. 46.The system for determining an improved channel change commandrecognition speed of claim 45 wherein: said successive channel changecommands are sent at incrementally increased speeds relative to previousof said successive channel change commands.
 47. The system fordetermining an improved channel change command recognition speed ofclaim 46 wherein speed is incrementally increased by alternatelydecrementing channel-digit pulse width and inter-digit time.
 48. Thesystem for determining an improved channel change command recognitionspeed of claim 45 wherein: said television tuner is tuned to an initialchannel before each of said commands is sent.
 49. The system fordetermining an improved channel change command recognition speed ofclaim 45 wherein sending said successive commands further comprises: aclock that provides output as a function of time coupled to saidmicroprocessor.
 50. The system for determining an improved channelchange command recognition speed of claim 45 wherein: said channelchange detector detects the first channel change command said televisiontuner does not correctly execute; and said microprocessor incrementallyreduces the speed used to send said first command by a specificincrement of time until said television tuner correctly executes saidchannel change commands.
 51. The system for determining an improvedchannel change command recognition speed of claim 50 wherein said speedis incrementally reduced by alternately increasing channel-digit pulsewidth and inter-digit time.
 52. The system for determining an improvedchannel change command recognition speed of claim 45 wherein: saidchannel change detector detects the first channel change command saidtelevision tuner does not correctly execute; and said microprocessorreduces the speed used to send said first command according to the timeincrement used to increase the speed of the previous command.
 53. Thesystem for determining an improved channel change command recognitionspeed of claim 45 wherein: said microprocessor sends a sequence of twoor more channel change commands at said faster speed with saidtransmitter; and said channel change detector detects whether saidchannel change commands were successfully executed.
 54. The system fordetermining an improved channel change command recognition speed ofclaim 53 wherein: said memory stores said faster speed if said channelchange commands were successfully executed; and said microprocessorreturns to the process of improving the speed at which said televisiontuner successfully executes channel change commands if said channelchange commands were not successfully executed.
 55. The system fordetermining an improved channel change command recognition speed ofclaim 38 wherein said transmitter comprises a cable box, a satellitereceiver or a video cassette recorder.
 56. The system for determining animproved channel change command recognition speed of claim 38 wherein:said microprocessor is a dedicated microprocessor programmed to improvechannel change command recognition speed; and said microprocessor iscoupled to a television microprocessor.